perm filename FILES.DOC[UCI,SYS]1 blob sn#047718 filedate 1973-07-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00010 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	HOW TO MAKE A UCILISP AT STANFORD
C00004 00003	ACTUAL PROCEDURES
C00006 00004	POSSIBLE FULL BOOTSTRAP
C00007 00005	IPLNR
C00008 00006	ICNVR
C00009 00007	DWIM
C00010 00008	FILENAME DIFFERENCES
C00011 00009	DIFFERENCES IN FILES
C00012 00010	DECTAPE DETAILS
C00013 ENDMK
C⊗;
HOW TO MAKE A UCILISP AT STANFORD

These procedures really assume you have some running Lisp already,
and you should always use the "highest-level" file from UCI (ie
use FOO.LAP rather than FOO.LSP) as the compilation etc is
sometimes optimized to make it work (faster?).

A UCILISP system consists of the following files:
ILISP.DMP	interpreter etc
ILISPn.SEG	shared high segment
ICOMPLR.DMP	compiler
ILISP.LOD	loader, sucked in by (LOAD x)
ILISP.SYM	symbol table for loader
IARITH.LSP	for Fortran arith
IARITH.REL	for Fortran arith

to make		you need	by	from
ILISP.DMP	ILISP.REL	ASS	ILISP.MAC
and		LAP		  	
ILISPn.SEG	SYS1.LAP	COM	SYS1.LSP
		SYS2.LSP
		ERRORX.LSP
		ERRORX.LAP	COM	ERRORX.COM
		BREAK.LAP	COM	BREAK.LSP
		EDIT.LAP	COM	EDIT.LSP

ILISP.SYM	ILISP.REL	ASS	ILISP.MAC
		ISYMMK.REL	ASS	ISYMMK.MAC

ILISP.LOD	ILOAD.REL	ASS	ILOAD.MAC

ICOMPLR.DMP	ILISP.DMP		above
		COMPLR.LAP	COM	COMPLR.LSP
		COMFIX.LSP

IARITH.LSP

IARITH.REL			ASS	IARITH.MAC
ACTUAL PROCEDURES
******* These allocations are not all correct: please notify DBA
of the correct ones.

ILISP.REL
.R MACRO
*ILISP.REL/P/P←ILISP.MAC

ILISP.DMP,ILISPn.SEG
.R LOADER
*ILISP$
CORE 8
.START
BPS=200
(INC (INPUT DSK:LAP))
<random messages>
(SETSYS SYS: ILISPn)
↑C
.SAVE ILISP

ILISP.SYM
.R LOADER
*ILISP.REL/J,ISYMMK.REL$
.S

ILISP.LOD
.R LOADER
*LOADER.REL$
.START
.RENAME ILISP.LOD←LISP.LOD

ICOMPLR.DMP
(.AS DSK SYS possibly)
.R ILISP 36
FW=2000, BPS=15000
*(INC (INPUT DSK: (COMPLR.LAP)))
<random messages>
*(DSKIN (COMFIX.LSP))
*(NOUUO NIL)
*(CINIT)
*↑C
.SAVE ICOMPLR

Special reminder: if you change a file, you must change EVERY file which
depends on it.  Thus if you fix ILISP.MAC you must make a NEW version
of Lisp, the symbol table, the compiler and really you should do CNVR
and PLNR too.
!!!!! TOVAR will fill you in on the details for this reminder !!!!!
POSSIBLE FULL BOOTSTRAP
(a fine test of system integrity!)
You will need to have a correct and compilable version of the first
part of the current LAP file.  I will call this LAP.LSP.

Assemble ILISP.MAC and load it.
Read in COMPLR.LSP
Compile COMPLR.LSP
Compile LAP.LSP
Load ILISP.REL, read in LAP.LSP,LAP.LAP
Compile from their LSP versions all the LAP files mentioned on
previous pages.
Now you can go as before.

Why doesn't this work?  Answer: it should!

Why is this a bad idea?  Answer: some of the LAP files are optimized
versions of the LAP files the compiler would produce.
IPLNR

How to make a microplanner for UCILISP

Compile DPLNR.LSP
Allocations???

Run Lisp
Allocations???
load dplnr.lap
(PINIT)
*↑C
.SAVE IPLNR
ICNVR

How to make one!

ICNVR.DMP	MACLSP.CMP
		CNVR.LSP
		STRCNV.LSP
		UTIL.LAP

To compile it
.R ICOMPLR 30
RPDL=450
*(DSKIN (MACLSP.CMP))
*(MACLSP)
*(COMPL (CNVR.LSP))
*

To get it going
.R ILISP 36
FW=650, BPS=16300
*(DSKIN (STRCNV.LSP))
*<at this stage, do REMOB on CNNVERFNS, the list of functions in CNVR>
*π
*(DATA*INIT)
*(GCGAG T)
*(EXCISE)
*↑C
.SAVE ICNVR

Special note: editing CNVR.LSP or CNVR.LAP with TV, ETV or SOS causes
trouble as the file (legitimately) contains an altmode. If you want to
edit them I suggest you get rid of the altmode.  It isn't as easy as
you might think!

DWIM

instructions.  Not done at Stanford so far!

Compilation  Allocations=???
Load DWIM.COM
Compile DWIM.LSP

Loading  Allocations=???
Load DWIM.INT,DWIM.LAP
(DINIT)
<there  you are>

FILENAME DIFFERENCES

HERE		UCI
ILISP.*		UCILSP.*
ILOAD.*		LOADER.*
ISYMMK.*	SYMMAK.*
IARITH.*	ARITH.*

ILISP.LOD	LISP.LOD
ILISP.SYM	LISP.SYM

DIFFERENCES IN FILES

FILENAME	AUTHOR	CHANGE

ILOAD.MAC	DBA	Put in 3 instructions for relocation stuff.  Note
			this is a change to the STANFORD loader, not the
			one given away by UCI, which we do not use.
ILISP.MAC	MJC	Put in Stanford version of GETSEG
		MJC	Put in segment protection for Stanford
		MJC	Fixed it to look for Stanford-named loader etc.

DECTAPE DETAILS

The directories of the relevant tapes are DTADIR.UCn
on this area.